home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
PASCAL
/
0188.ZIP
/
ITRMSAVE.INC
< prev
next >
Wrap
Text File
|
1985-02-20
|
2KB
|
73 lines
procedure InitSaveFile;
label
99;
var
s : string[14];
result : integer;
begin
if not SaveOpen then
begin
writeln;
write('Name of file to hold saved text: ');
readln(s);
if length(s) = 0 then
begin
writeln('ITERM --- text save aborted.');
goto 99
end;
{$I-}
assign(SaveFile, s);
reset(SaveFile);
result := IOresult;
case result of
0 : {existing file open ok}
begin
writeln('ITERM --- appending text to ',s);
SaveOpen := TRUE;
seek(SaveFile, FileSize(SaveFile))
end;
1,2 : {file does not exist, need to create it}
begin
writeln('ITERM --- creating ', s);
SaveOpen := TRUE;
rewrite(SaveFile)
end;
$F1 : {illegal file name or disk full}
writeln('ITERM --- text save aborted. ', s, ' is not a useable file name.');
else {unresolved error -- just report it}
writeln('ITERM --- I/O error number ', result:2,' on ',s);
writeln(' Text save aborted.')
end;
{$I+}
99: {exit point if no file name}
if (not (result in [0..2])) or (length(s) = 0) then
begin
SaveText := 0;
Status(3,'Text save: OFF')
end
end;
end;
procedure DiskBuffer(c : char);
{maintain a file of text from remote session as it appears on the screen}
begin
if SaveOpen then
begin
if SavePtr <= SAVE_BUF_SIZE then
begin
SaveBuffer[SavePtr] := c;
SavePtr := succ(SavePtr)
end
else
begin
send(ord(^S)); {x-off}
for SavePtr := 1 to SAVE_BUF_SIZE do
write(SaveFile, SaveBuffer[SavePtr]);
SavePtr := 1;
SaveBuffer[SavePtr] := c;
SavePtr := succ(SavePtr);
send(ord(^Q)) {x-on}
end
end
end;